/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.tools.gui;
import org.jdesktop.swingx.JXTable;
import java.awt.BorderLayout;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
/**
* DOCUMENT ME!
*
* @author thorsten.hell@cismet.de x
* @version $Revision$, $Date$
*/
public class TheProperties {
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @param args DOCUMENT ME!
*/
public static void main(final String[] args) {
showPropertyFrame();
}
/**
* DOCUMENT ME!
*/
public static void showPropertyFrame() {
final String SPLIT_STRING = "<=>"; // NOI18N
final List defaults = getUIDefaults(SPLIT_STRING);
final Object[][] data = splitUIDefaults(defaults, SPLIT_STRING);
showUIDefaultsGUI(data);
}
/**
* DOCUMENT ME!
*
* @param split DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
private static List getUIDefaults(final String split) {
final List list = new ArrayList();
final UIDefaults uid = UIManager.getDefaults();
final Enumeration e = uid.keys();
while (e.hasMoreElements()) {
final Object key = e.nextElement();
final Object value = uid.get(key);
list.add(key + split + value);
}
Collections.sort(list);
return list;
}
/**
* DOCUMENT ME!
*
* @param list DOCUMENT ME!
* @param split DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
private static Object[][] splitUIDefaults(final List list, final String split) {
final Object[][] data = new Object[list.size()][];
for (int i = 0; i < list.size(); i++) {
final Object[] row = new Object[2];
final String unsplittedRow = (String)list.get(i);
final String[] values = unsplittedRow.split(split);
row[0] = values[0];
row[1] = values[1];
data[i] = row;
}
return data;
}
/**
* DOCUMENT ME!
*
* @param modelData DOCUMENT ME!
*/
public static void showUIDefaultsGUI(final Object[][] modelData) {
final Object[] colNames = new Object[2];
colNames[0] = "Key"; // NOI18N
colNames[1] = "Value"; // NOI18N
final DefaultTableModel model = new DefaultTableModel(modelData, colNames) {
@Override
public boolean isCellEditable(final int row, final int column) {
return false;
}
};
final JXTable table = new JXTable(model);
// JTable table = new JTable(model);
final JFrame frame = new JFrame("UIDefaults"); // NOI18N
frame.getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);
frame.setSize(1050, 950);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}